The present invention relates to a naming convention and to methods, apparatus and computer programs for using the naming convention for identification of individual devices of different types.
It is predicted that over the next few years the number and variety of communication and data processing devices in existence are going to increase very rapidly. These include devices such as mobile telephones with additional processing capabilities (xe2x80x9csmart phonesxe2x80x9d), personal digital assistants (PDAs), smart home and office appliances, and many application-specific devices such as embedded device-failure management systems, etc.
There is a need for messaging systems which handle communications with these devices to be able to uniquely identify and route messages to and from such devices. However, if all devices are required to conform to a conventional naming convention then the configuration and maintenance requirements of ensuring uniqueness of device identifiers to prevent naming conflicts will be very onerous.
Another issue is that a naming convention in which all device identifiers are tied to a specific communications protocol considerably limits flexibility. It is desirable to enable mobile devices to connect to the communications network using different communications protocols which may each use a different addressing scheme (for example TCP/IP dial up networking, Infra Red beaming, Nokia""s Blue Tooth, and WAP each use different addressing schemes).
In a first aspect, the present invention provides methods, apparatus and computer programs for generating device names for devices within a communications network wherein the device names comprise: a class name which identifies a device class; and a device identifier which uniquely identifies a device within the class.
The class-based naming convention allows different types of device to have different formats of device identifier. Particular class names are associated with particular types of device which have particular device identifier formats, and the class names each facilitate interpretation and resolution of their associated format of device identifier. In a preferred embodiment of the invention, the class names are used during routing of communications to identify a respective name resolution process for interpreting and resolving the particular format of device identifiers of that class. The name resolution process then identifies a specific device.
The device names are preferably generated by a software component running on the respective devices, from a pre-recorded device class name and a pre-recorded device identifier. This self-generation of device names using pre-recorded data and a process running on the device can ensure global uniqueness of generated device names if device manufacturers each pre-register class names and allocate device identifiers uniquely for each of their devices. That is, if a particular class name can only be used by one organisation or association who manage unique allocation of device identifiers within that class, then global uniqueness of device names is achievable.
The invention avoids the significant configuration and maintenance overhead that would be required if forcing all devices to implement a conventional inflexible naming convention, with each device requiring allocation of a centrally-approved device identifier as the way to avoid name conflicts.
Furthermore, the non-volatile memory which is available on some hand-held devices is limited to read-only memory, and so a device name which is allocated to the device by a central name service or which is otherwise dynamically allocated via apparatus to which the device connects would not be retained in device memory when power is lost or certain failures occur. This potential loss is not a problem when self-generation of device names is implemented according to the preferred embodiment of the present invention, since the device name can be regenerated easily and consistently.
In a second aspect, the invention provides methods, apparatus and computer programs for registering the generated device names with an addressable communications apparatus within a communications network, to enable delivery of communications to registered devices via the addressable communications apparatus. The addressable communications apparatus may be an enterprise server providing a xe2x80x9cpostboxxe2x80x9d service, which mobile devices can connect to when ready to retrieve mail. Alternatively, the communications apparatus may be a router which dials mobile devices upon receipt of communications targeted at the respective device.
In a third aspect, the invention provides methods, apparatus and computer programs for routing communications to devices within a communications network. Devices in the network are identifiable by a device name, and different types of device within the network have different formats of device identifier within their respective device names. The method includes the following steps for resolving a device name to identify an individual device: identifying a class name within a device name and resolving the class name to identify a device class, thereby to identify a process for interpreting device identifiers which have a particular format associated with the device class; identifying a device identifier within the device name, which device identifier corresponds to the device identifier format of the identified device class, and interpreting the device identifier using the identified interpreter process to identify an individual device within the class.
The name resolution steps according to this aspect of the invention are preferably performed at an enterprise server comprising an addressable communications apparatus within the network. Lightweight, mobile communications devices which register with the enterprise server receive network communications via the enterprise server.
Methods according to the invention may be implemented by software. In particular, aspects of the invention may be implemented in one or more program products comprising program code recorded on a machine-readable recording medium, wherein the program code controls the operation of an apparatus on which it runs to perform the steps of the method.